#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
volatile sig_atomic_t usr_interrupt = 0;

void pausar()
{
	pause();
	signal(SIGUSR1,pausar);
}
void despausar()
{
	signal(SIGUSR2,despausar);
}
void terminar()
{
	srand(time(NULL));
	int z;
	//z= 1+ (int) (50.0 * rand() / (RAND_MAX + 1.0));
	z=666;
	printf("%d ",z);
	signal(SIGUSR1,terminar);
	usr_interrupt=1;
}

void dar_numero()
{
	signal(SIGUSR1,dar_numero);
	
}
void sigusr1_handler()
{
	signal(SIGUSR1,sigusr1_handler);
}

//1-idpipe, 2-jugador1, 3-cantcartonesjugador1, 4-jugador2, 5-cantcartonesjugador2 etc...
int main(int argc, char ** argv)
{
	
	FILE *stream;
	FILE *todoscartones;
	//int carton[5][5];
	int i=0,y=0,z=0,x=0,cant=0,aux=0,estado=0,c=0;

	char string[32];
	char nomjugador[32];
	
	char    stringd[] = "Hello, world!\n";
    char    readbuffer[80];
    int numero=0;
    char randChar;
	
	close(0);	
	//signal(SIGUSR1,pausar);
	//signal(SIGINT,dar_numero);
	signal(SIGUSR1,sigusr1_handler); 
	
	
	//stream = fdopen (atoi(argv[1]), "w");//el identificador del pipe
	todoscartones = fopen("todoscartones.txt","w");
	srand(time(NULL));
	for(cant=2;cant<argc;cant++)
	{
		
		if(cant%2==0)//si es par, es un jugador
		{
			aux=cant;
		}
		else//sino, es cantidad de cartones
		{
			for(x=0;x<atoi(argv[cant]);x++)//cantidad de cartones a generar
			{
	
				//printf(argv[aux]);
				//printf(" ");

				//write(atoi(argv[1]),"LOL\n",16);
				
				fprintf(todoscartones,argv[aux]);//el nombre del jugador
				fprintf(todoscartones, " ");
				
				for(i=0;i<5;i++)
				{
					for(y=0;y<5;y++)
					{
						z= 1+ (int) (50.0 * rand() / (RAND_MAX + 1.0));
						sprintf(string,"%d ",z);
						//write(atoi(argv[1]), &string, strlen(string));
						//printf(string);
						
						//fprintf(stream,string);
						//printf("%d",string);
						
						fprintf(todoscartones,string);
					}
				}
				fprintf(todoscartones, "\n");
			}
		}
	}
	fclose(todoscartones);
	srand(time(NULL));

	for(i=0;i<5;i++)
	{
		z= 1+ (int) (50.0 * rand() / (RAND_MAX + 1.0));
		write(STDOUT_FILENO,&z, sizeof(z));

	}
	close(STDOUT_FILENO);
}

